package org.haifi.game.action;

import org.haifi.game.annotation.MethodId;
import org.haifi.game.pb.TestAction.TestActionParam;
import org.haifi.game.pb.TestAction.TestActionTestMessage;
import org.haifi.game.service.TestManager;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

@Component
public class TestAction extends GameBaseAction {
	@Autowired
	private TestManager testManager;

	public TestManager getTestManager() {
		return testManager;
	}

	public void setTestManager(TestManager testManager) {
		this.testManager = testManager;
	}

	/**
	 * 测试接口，用来测试协议是否正常
	 * 
	 * methodId是指令id,short类型，支持-32768 ~ 32767 足够用了
	 * 
	 * 使用调用的指令的id,可以查找到客户端输入的参数及服务器返回的参数(也可以使用自然数指令)
	 * 
	 * 但这样又得加一个约定，返回参数必须是和当前指令相关的返回。
	 * 
	 * @param person
	 */
	@MethodId(0)
	public TestActionTestMessage.Builder test(TestActionParam param) {
		testManager.test();
		TestActionTestMessage.Builder message = TestActionTestMessage
				.newBuilder().setId(999);
		log.info(param.getName());
		return message;
	}
}
